/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Geral;

import Clube.CadastroClube;
import Clube.Clube;
import Clube.ClubeExistenteException;
import Clube.ClubeInexistenteException;
import Instrutor.CadastroInstrutor;
import Instrutor.Instrutor;
import Instrutor.InstrutorExistenteException;
import Instrutor.InstrutorInexistenteException;
import Modalidade.CadastroModalidade;
import Modalidade.Modalidade;
import Modalidade.ModalidadeExistenteException;
import Modalidade.ModalidadeInexistenteException;
import Plano.CadastroPlano;
import Plano.Plano;
import Plano.PlanoExistenteException;
import Plano.PlanoInexistenteException;
import Treino.CadastroTreino;
import Treino.Treino;
import Treino.TreinoExistenteException;
import Treino.TreinoInexistenteException;
import Usuario.CadastroUsuario;
import Usuario.Usuario;
import Usuario.UsuarioExistenteException;
import Usuario.UsuarioInexistenteException;
import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Ivaldo
 */
@Stateless
public class Fachada implements Serializable {
    
    @EJB
    private CadastroClube cadClube;
    @EJB
    private CadastroInstrutor cadInstrutor;
    @EJB
    private CadastroTreino cadTreino;
    @EJB
    private CadastroUsuario cadUsuario;
    @EJB
    private CadastroPlano cadPlano;
    @EJB
    private CadastroModalidade cadModalidade;
    
    public Fachada(){
        
    }
    
    public void adicionarClube(Clube clube) throws ErroInternoException, ClubeExistenteException{
        this.cadClube.adicionar(clube);
    }
    
    public void removerClube(long id_clube) throws ErroInternoException, ClubeInexistenteException{
        this.cadClube.remover(id_clube);
    }
    
    public Clube buscarClube(long id_clube) throws ErroInternoException, ClubeInexistenteException{
        return this.cadClube.buscarClube(id_clube);
    }
    
    public void atualizarClube (Clube clube) throws ErroInternoException, ClubeInexistenteException{
        this.cadClube.atualizar(clube);
    }
    
    public List<Clube> listaClube() throws ErroInternoException{
        return this.cadClube.listaClube();
    }
    
    public Clube loginClube(String login, String senha) throws ErroInternoException, ClubeInexistenteException{
        return this.cadClube.loginClube(login, senha);
    }
    
    public void adicionarInstrutor(Instrutor instrutor) throws ErroInternoException, InstrutorExistenteException, InstrutorInexistenteException{
        this.cadInstrutor.adicionar(instrutor);
    }
    
    public void removerInstrutor(long id_instrutor) throws ErroInternoException, InstrutorInexistenteException{
        this.cadInstrutor.remover(id_instrutor);
    }
    
    public Instrutor buscarInstrutor(long id_instrutor) throws ErroInternoException, InstrutorInexistenteException{
        return this.cadInstrutor.buscarInstrutor(id_instrutor);
    }
    
    public Instrutor buscarInstrutorPorNome(String nome) throws ErroInternoException, InstrutorInexistenteException{
        return this.cadInstrutor.listaInstrutorNome(nome);
    }
    
    public void atualizarInstrutor(Instrutor instrutor) throws ErroInternoException, InstrutorInexistenteException{
        this.cadInstrutor.atualizar(instrutor);
    }
    
    public Instrutor loginInstrutor(String login, String senha) throws ErroInternoException, InstrutorInexistenteException{
        return this.cadInstrutor.loginInstrutor(login, senha);
    }
    
    public List<Instrutor> listaInstrutor(Instrutor instrutor) throws ErroInternoException{
        return this.cadInstrutor.listaInstrutores(instrutor);
    }
    
    public void adicionarModalidade (Modalidade modalidade) throws ErroInternoException, ModalidadeExistenteException{
        this.cadModalidade.adicionar(modalidade);
    }
    
    public void removerModalidade (long id_modalidade) throws ErroInternoException, ModalidadeInexistenteException{
        this.cadModalidade.remover(id_modalidade);
    }
    
    public Modalidade buscarModalidade(long id_modalidade) throws ErroInternoException, ModalidadeInexistenteException{
        return this.cadModalidade.buscarModalidade(id_modalidade);
    }
    
    public void atualizarModalidade (Modalidade modalidade) throws ErroInternoException, ModalidadeInexistenteException{
        this.cadModalidade.atualizar(modalidade);
    }
    
    public List<Modalidade> listaModalidade(Modalidade modalidade) throws ErroInternoException{
        return this.cadModalidade.listaModalidade(modalidade);
    }
    
    public void adicionarPlano (Plano plano) throws ErroInternoException, PlanoExistenteException{
        this.cadPlano.adicionar(plano);
    }
    
    public void removerPlano (long id_plano) throws ErroInternoException, PlanoInexistenteException{
        this.cadPlano.remover(id_plano);
    }
    
    public Plano buscarPlano(long id_plano) throws ErroInternoException, PlanoInexistenteException{
        return this.cadPlano.buscarPlano(id_plano);
    }
    
    public void atualizarPlano (Plano plano) throws ErroInternoException, PlanoInexistenteException{
        this.cadPlano.atualizar(plano);
    }
    
    public List<Plano> listaPlano(Plano plano) throws ErroInternoException{
        return this.cadPlano.listaPlano(plano);
    }
    
    public void adicionarTreino(Treino treino) throws ErroInternoException, TreinoExistenteException{
        this.cadTreino.adicionar(treino);
    }
    
    public void removerTreino(long id_treino) throws ErroInternoException, TreinoInexistenteException{
        this.cadTreino.remover(id_treino);
    }
    
    public Treino buscarTreino(long id_treino) throws ErroInternoException, TreinoInexistenteException{
        return this.cadTreino.buscarTreino(id_treino);
    }
    
    public void atualizarTreino(Treino treino) throws ErroInternoException, TreinoInexistenteException{
        this.cadTreino.atualizar(treino);
    }
    
    public List<Treino> listaTreino(Treino treino) throws ErroInternoException{
        return this.cadTreino.listaTreino(treino);
    }
    
    public void adicionar (Usuario usuario) throws ErroInternoException, UsuarioExistenteException, UsuarioInexistenteException{
        this.cadUsuario.adicionar(usuario);
    }
    
    public void remover (long id_usuario) throws ErroInternoException, UsuarioInexistenteException{
        this.cadUsuario.remover(id_usuario);
    }
    
    public Usuario buscarUsuario(long id_usuario) throws ErroInternoException, UsuarioInexistenteException{
        return this.cadUsuario.buscarUsuario(id_usuario);
    }
    
    public void atualizar (Usuario usuario) throws ErroInternoException, UsuarioInexistenteException{
        this.cadUsuario.atualizar(usuario);
    }
    
    public Usuario loginUsuario(String login, String senha) throws ErroInternoException, UsuarioInexistenteException{
        return this.cadUsuario.loginUsuario(login, senha);
    }
    
    public List<Usuario> listaUsuario(Usuario usuario) throws ErroInternoException{
        return this.cadUsuario.listaUsuarios(usuario);
    }
}   



